First, “data processing concerning the time series data” will be explained. In this description, “data processing concerning the time series data” means a process that is carried out for time series input data, that is, a series of data inputted one after another. Results data of the data processing concerning the time series data is also outputted one after another similarly. “To be inputted one after another” means that a plurality of data arrives at a processing device at different timing over a period of time respectively. As an example of the data processing concerning the time series data, such as a process that calculates a sum of two nearest values of the time series data can be mentioned. Hereinafter, the data processing concerning the time series data is simply called as “time series data processing”.
In the following explanation, an array of data is represented as [1, 2, 3, 4], a set (collection of elements) of data is represented as {1, 2, 3, 4}, and a set of data is represented as <10 degrees, January 1> by distinguishing them with different kinds of parentheses. Also, individual values of data such as 1 and 2 are transcribed as “1” and “2” and are distinguished from codes that show components.
Also, a period of a clock used for operation of a time series data processing device is called “a cycle”, and it is used as a unit of a period of time. “Start time of cycle” means the first point of time of the period of time and “end time of cycle” means the last point of time of the period of time. For example, in case a frequency of a clock is 1 GHz, concerning a certain reference time, the first cycle means a period of time between the reference time plus zero second and the reference time plus 1 nanosecond, and the N-th cycle means a period of time between the reference time plus (N−1) nanoseconds and the reference time plus N nanoseconds. Start time of the M-th cycle means the reference time plus (M−1) nanoseconds, and end time of the M-th cycle means the reference time plus M nanoseconds.
Here, input data is a set consisting of no smaller than one value. As an example, a set of temperature and date, a set of temperatures only and a set of brand name, stock price and time can be mentioned. For example, a set of temperature and date is represented as <10 degrees, January 1>. In case there is no concern that they are confused, input data and a value handled by a device are simply called “data”.
Time series data processing is often carried out to a plurality of input data. Further, the time series data processing is often carried out to a window of time series data. “Window” is a set (collection of elements) of input data, and there are two kinds. One is, supposing that a predefined number is N (N is an integer of no smaller than 1), a set (collection of elements) of input data of nearest N pieces. The other is, supposing that a period of time at a certain predefined time is P and regarding one element of a set of input data as time, the set (collection of elements) of input data that fits into the period of time.
For example, it is supposed that input data is a set of temperature and date, and that time series data such as <10 degrees, January 1>, <11 degrees, January 2>, <10 degrees, January 3> and <10 degrees, January 4> are given. The window that fits into a period of time from January 4 to the last 3 days is {<11 degrees, January 2>, <10 degrees, January 3> and <10 degrees, January 4>}.
Also, a set (collection of elements), a subset (collection of elements) and an element of input data in a window are called “window data”. In the time series data processing, this window data is often stored. In the following explanation, the window or the window data is represented as an array or a set (collection of elements).
It is supposed that time series data processing is executed using an IC (Integrated Circuit) chip that has in plural an area (hereinafter, referred to as “a partition”) that can define contents of a process and specifically, an area in which circuit information and so on for configuring a circuit that executes the process can be written. As an example of such an IC chip, an FPGA (Field Programmable Gate Array) can be mentioned. Or, it is possible to execute the time series data processing by using, as an IC chip, a processor that reads a program from a memory and executes it. In this case, process content, that is, a program that designates a procedure of the process may be written in the memory.
In time series data processing, there exist needs that want to change the first user defined process (referred to as “an old process”) to the second user defined process (referred to as “a new process”). That is, the first user defined process (referred to as “an old process”) is executed in the first partition on the IC chip. And at the time the first user defined process is in execution, by writing circuit information that executes the second user defined process (referred to as “a new process”) in the second partition, the new process is executed and the old process is stopped. There exist needs to want to change the old process to the new process in this way.
As an example, consider an application that makes values of temperature sensors positioned distributed in a wide area as input data, calculates an average over a certain period of time, and detects an emergency situation including a fire. When temperature change has become intense, in order to raise speed that follows the temperature change, there exist needs to reduce a length of the target period of time to calculate the average of the temperature.
Also, consider an application that calculates an index to decide timing to purchase or sell financial products such as a stock. Depending on a brand of financial products to be purchased or sold and a strategy to purchase or sell, there exists a plurality of indices that is necessary, and sets (collection of elements) of the indices that should be outputted are different. A certain device can calculate only a finite number of indices simultaneously. Depending on time, the brand to be purchased or sold and the strategy change. Therefore, there exist needs to want to change the indices to be calculated depending on the brand to be purchased or sold at that time and on the strategy.
An example of change of processes in the background art will be explained using FIG. 32. In this example, an old process that calculates a sum of nearest two values is changed to a new process that calculates a sum of nearest three values.
Also, it is supposed that data is inputted every 1 cycle, and explanation will be made by using time with 1 cycle as a unit.
At start time of the first cycle, time series data 1 is inputted and the old process stores the value as a window data.
At start time of the second cycle, time series data 2 is inputted and the old process stores the value as the window data. Also, since the old process obtained nearest two values, “3” is outputted as a results data.
At start time of the third cycle, an instruction to change is issued to the new process. Also, it is supposed that information to execute the new process is written in a device, and operation has started. For example, it is supposed that circuit information to execute the new process is written in a certain area of an FPGA. Here, it is supposed that the circuit information to execute the new process is written separately from the circuit information to execute the old process, and the old process and the new process operate in parallel for a while.
At start time of the third cycle, time series data “3” is inputted and the new process stores the value as the window data.
At start time of the fourth cycle, time series data “4” is inputted and the new process stores the value as the window data.
At start time of the fifth cycle, time series data “5” is inputted and the new process stores the value as the window data. Also, since the new process obtained nearest three values, “12” is outputted as the results data.
Here, the old process is stopped or deleted, and change of the processes is completed.
Here, at the time of change of the processes, (1) it is desired that, while both the results of the new process and the old process are not outputted to device exterior being mixed, both the processes are carried out. (2) Further, there exist needs that both the processes are carried out while, among the results of the old process before and after the process is changed, those that are still useful and available are outputted to device exterior.
As an example, consider the application mentioned above that calculates an average of the values of the temperature sensor over a certain period of time and detects an emergency situation including a fire. At this time, when temperature change has become intense, in order to raise speed that follows the temperature change, it is desirable to change a width of the period of time to calculate the average of the temperature. Also, in order that the results of the old process and the new process are not confused, it is also necessary to change the processes so that both of the results may not be outputted to device exterior being mixed. Further, since also the result of the old process is still useful and available, it is desirable to receive the result of the old process from as many devices as possible until the result of the new process is outputted to device exterior. Needs as described above exist.
As another example, consider the application that carries out orders to purchase or sell financial products. Since it is desired to change a brand to be purchased or sold, it is necessary to change the process of instruction to purchase or sell. The brand before change is called “an old brand”, and the brand after change is called “a new brand”. Also, when instructions related to the new and the old brand are mixed before and after the processes are changed, there is a concern that purchasing or selling may be mistaken. Therefore, it is necessary that the processes are changed while the results of both the new and the old process may not be outputted to device exterior being mixed. Also, since instructions to purchase or sell may be carried out to the old brand until the last timing, it is desirable to receive the result of the old process from as many devices as possible until the result of the new process is outputted to device exterior. Needs as described above exists.
Further, in this application, there exist needs, in the course to change the processes, to stop the old process after a safe state is reached. For example, there is a case that, when an order to sell is issued, the instruction of the old process is made to be issued until an order to purchase is issued, and after that, only the instruction of the new process will be issued. That is, there exist needs that: (1) since a sequence of results that is outputted from the old process that is not in a state that can be stopped is useful and available, it is outputted to device exterior, and (2) after that, a sequence of results that is outputted from the old process that becomes to a state that can be stopped is replaced by a sequence of results outputted from the new process and is outputted to device exterior.
Technologies related to the processes as above are described in PTL 1-4 and NPL 1.
A system using a re-configurable device is disclosed in PTL 1.
A time series data compression device that carries out two kinds of processes is disclosed in PTL 2.
In PTL 3 and 4, a processing device that handles information to which a version number (an update version number) is appended is disclosed.
In NPL 1, a time series data processing device in which two kinds of processes, that is, an old process and a new process, is disclosed. In NPL 1, although implementation by software is assumed, for convenience sake, implementation by hardware is assumed and its block diagram is shown in FIG. 33.
The technology of NPL 1 is equipped with a processing unit 501 that carries out a user defined process corresponding to an old process and a user defined process corresponding to a new process; and a merging unit 511 that connects a result of the processing unit to an output port to the outside.
The technology of NPL 1 operates, roughly divided, in two kinds of methods. The operation by the first method is explained using FIG. 34 to FIG. 38.
In this example, the old process that calculates a sum of nearest two values is changed to the new process that calculates a sum of nearest three values. It is supposed that both the new and the old process generate the results in the same cycle as data is inputted. Also, it is supposed that the results of the processes reach the merging unit 511 from the processing unit 501 in 1 cycle. Also, it is supposed that the results of the processes reach device exterior from the merging unit 511 in 1 cycle. Also, it is supposed that the data is inputted every 1 cycle, and explanation will be made by using time with 1 cycle as a unit.
It is supposed that time series data “1” is inputted at start time of the first cycle and time series data “2” is inputted at start time of the second cycle. Since the old process obtained [1, 2] that are nearest two values, the processing unit 501 calculates and outputs the result “3”. At end time of the second cycle, each unit will be in the state as in FIG. 34.
It is supposed that time series data 3 is inputted to the new and the old process at start time of the third cycle. The old process outputs the result “5”. At the same time, it is supposed that the contents of the new process is defined and starts execution. Definition of the contents of the new process is, in case the device that realizes the process is an FPGA, carried out, for example, by a partial reconfiguration function. The new process stores the time series data “3”. The result of the old process “3” is outputted to device exterior. At end time of the third cycle, each unit will be in the state as in FIG. 35.
It is supposed that time series data “4” is inputted to the new and the old process at start time of the fourth cycle. The old process outputs the result “7”. The new process stores the time series data “4”. The result of the old process “5” is outputted to device exterior. At end time of the fourth cycle, each unit will be in the state as in FIG. 36.
It is supposed that time series data “5” is inputted to the new and the old process at start time of the fifth cycle. The old process outputs the result “9”. Since the new process obtained [3, 4, 5] that are nearest three values, the result “12” that is a sum of the three values is outputted. The result of the old process “7” is outputted to device exterior. At end time of the fifth cycle, each unit will be in the state as in FIG. 37.
It is supposed that time series data “6” is inputted to the new and the old process at start time of the sixth cycle. The old process outputs the result “11”. The new process outputs the result “15”. The result of the old process “9” and the result of the new process “12” are outputted to device exterior. At end time of the sixth cycle, each unit will be in the state as in FIG. 38. Thus, according to the first method of NPL 1, the results of both the new and the old process are outputted to device exterior being mixed.
Next, the operation by the second method of NPL 1 will be explained using FIG. 39 to FIG. 43.
Also, the old process that calculates a sum of nearest two values is changed to the new process that obtains a sum of nearest three values here. It is supposed that both the new and the old process output results in the same cycle as data is inputted. Also, it is supposed that the results of the processes reach the merging unit from the processing unit in 1 cycle. Also, it is supposed that the result of the process reaches device exterior from the merging unit in 1 cycle. Also, it is supposed that the data is inputted every 1 cycle, and explanation will be made by using time with 1 cycle as a unit.
It is supposed that time series data “1” is inputted at stat time of the first cycle. It is supposed that time series data “2” is inputted at start time of the second cycle. Since the old process obtained [1, 2] that are nearest two values, the processing unit 501 calculates and outputs the result “3”. At end time of the second cycle, each unit will be in the state as in FIG. 39.
It is supposed that time series data “3” is inputted to the new and the old process at start time of the third cycle. At the same time, it is supposed that information to execute the new process is written and execution is started. According to the second method, the old process is stopped at this timing. The new process stores the time series data “3”. At end time of the third cycle, each unit will be in the state as in FIG. 40.
It is supposed that time series data “4” is inputted to the new and the old process at start time of the fourth cycle. The new process stores the time series data “4”. At end time of the fourth cycle, each unit will be in the state as in FIG. 41. Thus, according to the second method, the result is not outputted to device exterior at this timing. In contrast, according to the first method, as shown in FIG. 36, the result is outputted.
It is supposed that time series data “5” is inputted to the new and the old process at start time of the fifth cycle. Since the new process obtained [3, 4, 5] that are nearest three values, the result “12” is outputted. At end time of the fifth cycle, each unit will be in the state as in FIG. 42. Thus, according to the second method, the result is not outputted to device exterior at this timing either. In contrast, according to the first method, as shown in FIG. 37, the result is outputted.
It is supposed that time series data “6” is inputted to the new and the old process at start time of the sixth cycle. The new process outputs the result “15”. At end time of the sixth cycle, each unit will be in the state as in FIG. 43.
As mentioned above, according to the second method of NPL 1, the results of both the new and the old process are not outputted to device exterior being mixed.